期刊
  出版年
  关键词
结果中检索 Open Search
Please wait a minute...
选择: 显示/隐藏图片
1. 基于深度学习的耦合度相关代码坏味检测方法
苏珊, 张杨, 张冬雯
《计算机应用》唯一官方网站    2022, 42 (6): 1702-1707.   DOI: 10.11772/j.issn.1001-9081.2021061403
摘要326)   HTML14)    PDF (1071KB)(108)    收藏

基于启发式和机器学习的代码坏味检测方法已被证明具有一定的局限性,且现有的检测方法大多集中在较为常见的代码坏味上。针对这些问题,提出了一种深度学习方法来检测过紧的耦合、分散的耦合和散弹式修改这三种与耦合度相关检测较为少见的代码坏味。首先,提取三种代码坏味需要的度量并对得到的数据进行处理;之后,构建卷积神经网络(CNN)与注意力(Attention)机制相结合的深度学习模型,引入的注意力机制可以对输入的度量特征进行权重的分配。从21个开源项目中提取数据集,在10个开源项目中对检测方法进行了验证,并与CNN模型进行对比。实验结果表明:过紧的耦合和分散的耦合在所提模型中取得了更好的结果,相应代码坏味的查准率分别达到了93.61%和99.76%;而散弹式修改在CNN模型中有更好的结果,相应代码坏味查准率达到了98.59%。

图表 | 参考文献 | 相关文章 | 多维度评价
2. 并发程序中数据竞争检测方法
张杨, 梁亚楠, 张冬雯, 孙仕欣
计算机应用    2019, 39 (1): 61-65.   DOI: 10.11772/j.issn.1001-9081.2018071605
摘要567)      PDF (857KB)(293)    收藏
针对数据竞争检测过程中的误报和漏报问题,提出一种静态数据竞争检测方法。首先,使用控制流分析自动构造线程内和线程间函数调用图;然后,收集线程内变量访问事件信息,定义竞争产生条件并分析检测出所有可能的竞争;其次,为了提高检测的准确率,进行别名变量和别名锁的分析降低漏报和误报;最后,通过控制流分析来抽象访问事件之间的时序关系,并结合程序切片技术对访问事件的发生序关系进行判断,以此避免因忽略线程交互带来的误报。依据该方法,使用Java语言在Soot软件分析框架下实现了一个数据竞争检测工具。在实验中,对JGF和IBM Contest基准测试套件中的raytracer和airline等程序进行数据竞争检测,并与目前已有的数据竞争检测算法和工具(HB算法和RVPredict)进行对比。实验结果表明,与HB算法和RVPredict工具相比,该方法检测到的数据竞争总数分别增加了81%和16%,数据竞争检测的准确率分别提升了约14%和19%,有效地避免了数据竞争检测中的漏报和误报现象。
参考文献 | 相关文章 | 多维度评价
3. 面向Fork/Join框架的软件重构及性能分析
张冬雯, 柳晨光, 张杨
计算机应用    2015, 35 (11): 3172-3177.   DOI: 10.11772/j.issn.1001-9081.2015.11.3172
摘要359)      PDF (853KB)(474)    收藏
针对目前对于Fork/Join框架应用和性能分析的相关工作还不多的现状,以JGF基准测试程序套件为基础,对其中的series、crypt、sparsematmult和sor等程序使用Fork/Join框架进行重构,并以series程序为例,详细地说明了重构的过程.在实验中,首先,测试了每个程序在不同阈值下使用Fork/Join框架分别递归1、2、3次执行程序的时间,进而选择相对较好的阈值;然后,对每个程序使用Fork/Join框架和使用Thread的执行时间进行了对比;此外,测试了重构后的程序在执行过程中任务窃取的情况.实验结果表明,Fork/Join框架执行时间与多线程执行时间相比,平均降低了14.2%;对于series程序,当数据大小为sizeC且线程个数为2时,Fork/Join框架执行时间比多线程执行时间降低高达40%,可见,在多核处理器平台上应用Fork/Join框架比使用多线程将获得更好的性能.
参考文献 | 相关文章 | 多维度评价
4. 基于面向方面和运行时反射技术的并行框架
张杨 张冬雯 王一拙
计算机应用    2014, 34 (11): 3096-3099.   DOI: 10.11772/j.issn.1001-9081.2014.11.3096
摘要176)      PDF (550KB)(491)    收藏

针对使用并行库JOMP的程序在性能方面存在的不足,提出一个可以分离并行逻辑和功能逻辑的并行框架。该框架对程序中需要并行处理的部分进行标记,采用面向方面和运行时反射技术实现被标记部分的处理,其中面向方面技术用于实现并行逻辑的分离和编织,运行时反射技术用于获取运行时被标记部分的相关信息,以并行库(waxberry)的方式实现了该并行框架。使用基准测试程序JGF套件中的三个测试程序对并行库进行了测试,实验结果表明,应用该并行库的程序可以获得较好的性能。

参考文献 | 相关文章 | 多维度评价